d56f18ce061ec961416f44afd155aa2138df3aa8,src/main/java/com/tesco/mewbase/log/impl/file/FileLog.java,FileLog,start,#,83
Before Change
} else {
cf = faf.openBasicFile(currFile);
}
return cf.thenApply(bf -> {
currWriteFile = bf;
return (Void)null;
});
}
@Override
After Change
public synchronized CompletableFuture<Void> start() {
logger.trace("Starting file log " + this);
if (startRes != null) {
return startRes;
}
loadInfo();
checkAndLoadFiles();
File currFile = getFile(fileNumber);
CompletableFuture<Void> cfCreate = null;
if (!currFile.exists()) {
if (fileNumber == 0 && filePos == 0) {
// This is OK, new log
logger.trace("Creating new log info file for channel {}", channel);
saveInfo(true);
// Create a new first file
cfCreate = createAndFillFile(getFileName(0));
} else {
throw new MewException("Info file for channel {} doesn't match data file(s)");
}
}
final File cFile = currFile;
// Now open the BasicFile
CompletableFuture<BasicFile> cf;
if (cfCreate != null) {
cf = cfCreate.thenCompose(v -> faf.openBasicFile(cFile));
} else {
cf = faf.openBasicFile(currFile);
}
startRes = cf.thenAccept(bf -> {
currWriteFile = bf;
logger.trace("Opened file log " + this);
});
return startRes;
}